/**
 * 认证工具
 * 用于管理用户登录状态、token和用户信息
 */

// Token存储的key
const TOKEN_KEY = 'token';

// 用户信息存储的key
const USER_INFO_KEY = 'userInfo';

/**
 * 保存token到本地存储
 * @param {String} token 
 */
export function setToken(token) {
  uni.setStorageSync(TOKEN_KEY, token);
}

/**
 * 获取token
 * @returns {String|null} token
 */
export function getToken() {
  return uni.getStorageSync(TOKEN_KEY) || null;
}

/**
 * 移除token
 */
export function removeToken() {
  uni.removeStorageSync(TOKEN_KEY);
}

/**
 * 保存用户信息到本地存储
 * @param {Object} userInfo 
 */
export function setUserInfo(userInfo) {
  uni.setStorageSync(USER_INFO_KEY, userInfo);
}

/**
 * 获取用户信息
 * @returns {Object|null} 用户信息
 */
export function getUserInfo() {
  return uni.getStorageSync(USER_INFO_KEY) || null;
}

/**
 * 移除用户信息
 */
export function removeUserInfo() {
  uni.removeStorageSync(USER_INFO_KEY);
}

/**
 * 判断用户是否已登录
 * @returns {Boolean} 是否已登录
 */
export function isLoggedIn() {
  return !!getToken();
}

/**
 * 登出，清除所有认证信息
 */
export function logout() {
  removeToken();
  removeUserInfo();
} 